﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using CityLife.Objects;
using CityLife.CityService;

namespace CityLife
{
	public interface ICityElement
	{
		DateTime CreateDate{get;set;}
        DateTime UpdateDate { get; set; }
        double X { get; set; }
        double Y { get; set; }
        int GridRow { get; set; }
        int GridColumn { get; set; }
 
        List<Direction> ZoneDirections {get;set;}
        UIElementCollection Children { get;  }
        CityElementType ElementType { get; set; } 
        CityElementOrientation ElementOrientation { get; set; }
       Type CityElementDesign {get;set;}
       long ConnectionID { get; set; }
       int Capacity { get; set; }
 
       CityElementStage ElementStage { get; set; }

       CursorType CursorType { get; set; }


		}


    public interface ICityDesign
    {
        
   
       ShopInfo Info { get; }

       void SetBuildStep(CityElementStage step);

        //Item Shop description

    }

    public interface INeighbour
    {
        void SetNeighbour();
    }



    public class ShopInfo
    {
        public CursorType CursorType { get; set; }
        public CityElementOrientation ElementOrientation { get; set; }
        public CityElementType ElementType { get; set; }
        public string Thumbnail { get; set; }
        public string Name { get; set; }
        public int Cost { get; set; }
        public int XP { get; set; }
        public double BuildDuration { get; set; }
        public double RepairDuration { get; set; }
        public double MelfunctionDuration { get; set; }


        public double MaxAge { get; set; }
        public Type DesignType { get; set; }
        public int MonthlyCost { get; set; }
        public int Capacity { get; set; }
        public int Emissions { get; set; }
   

       

  
    }


}